Après un B.Sc en informatique en 1977 à l'université de Calgary, il obtient son Ph.D en informatique théorique en 1983 à l'université Carnegie-Mellon aux États-Unis. Sa thèse porte sur la « manipulation algébrique des contraintes ».
Il est le concepteur du langage de programmation Java en 1994 et du système de fenêtrage NeWS. Il a créé l'architecture initiale du langage Java et implémenté son compilateur original et sa première machine virtuelle. Il est également l'auteur de Gosling Emacs, la première version d'Emacs pour système Unix.
Employé de Sun Microsystems depuis 1984, il a remis sa démission le 2 avril 2010, à la suite du rachat de Sun par Oracle Corporation. Il a indiqué vouloir prendre de longues vacances avant de chercher un autre poste. En mars 2011, il est engagé par Google, qu'il quitte en août de la même année pour intégrer Liquid Robotics.